//声明
#define M<稀疏矩阵的行数>
#define N<稀疏矩阵的列数>
#define MaxSize<稀疏矩阵中非零元素的最多个数>
typedef struct
{
    int r;
    int c;
    ElemType d;
}TuoNode;
typedef struct
{
    int rows;
    int cols;
    int nums;
    TupNode data[MaxSize];
}TSMatrix;
//创建
void CreateMat(TSMatrix &t,ElemType A[M][N])
{
    int i,j;
    t.rows=M;
    t.cols=N;
    t.nums=0;
    for(i=0;i<M;i++)
    {
        for(j=0;j<N;j++)
            if(A[i][j]!=0)
            {
                t.data[t.nums].r=i;
                t.data[t.nums].c=j;
            }
    }
}
//赋值
bool Value(TSMatrix &t,ElemType x,int i,int j)
{
    int k=0,k1;
    if(i>=t.rows || j>=t.cols)
        return false;
    while(k<t.nums && i>t.data[k].r)  k++;
    while(k<t.nums && i==t.data[k].r && j>t.data[k].c)  k++;
    if(t.data[k].r==i && t.data[k].c==j)
        t.data[k].d=x;
    else
    {
        for(k1=t.nums-1;k1>=k;k1--)
        {
            t.data[k1+1].r=t.data[k1].r;
            t.data[k1+1].c=t.data[k1].c;
            t.data[k1+1].d=t.data[k1].d;
        }
        t.data[k].r=i;
        t.data[k].c=j;
        t.data[k].d=x;
        t.nums++;
    }
    retuen true;
}